home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / xml4j.jar / com / ibm / xml / internal / UTF8Recognizer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-08-30  |  2.2 KB  |  67 lines

  1. package com.ibm.xml.internal;
  2.  
  3. import com.ibm.xml.framework.ChunkyByteArray;
  4. import com.ibm.xml.framework.ParserState;
  5. import com.ibm.xml.framework.XMLDeclRecognizer;
  6. import com.ibm.xml.framework.XMLReader;
  7. import java.io.InputStreamReader;
  8. import java.io.UnsupportedEncodingException;
  9. import org.xml.sax.InputSource;
  10.  
  11. public class UTF8Recognizer extends XMLDeclRecognizer {
  12.    public XMLReader recognize(ParserState var1, InputSource var2, ChunkyByteArray var3, boolean var4) throws Exception {
  13.       Object var5 = null;
  14.       byte var6 = var3.byteAt(0);
  15.       if (var6 == 60) {
  16.          byte var7 = var3.byteAt(1);
  17.          if (var7 == 63 && var3.byteAt(2) == 120 && var3.byteAt(3) == 109 && var3.byteAt(4) == 108) {
  18.             byte var8 = var3.byteAt(5);
  19.             if (var8 == 32 || var8 == 9 || var8 == 10 || var8 == 13) {
  20.                int var9 = ((XMLDeclRecognizer)this).prescanXMLDeclOrTextDecl(new XMLDeclReader(var3, var1), var4);
  21.                if (var9 != -1) {
  22.                   String var10 = var1.getStringPool().orphanString(var9).toUpperCase();
  23.                   if ("ISO-10646-UCS-2".equals(var10)) {
  24.                      throw new UnsupportedEncodingException(var10);
  25.                   }
  26.  
  27.                   if ("ISO-10646-UCS-4".equals(var10)) {
  28.                      throw new UnsupportedEncodingException(var10);
  29.                   }
  30.  
  31.                   if ("UTF-16".equals(var10)) {
  32.                      throw new UnsupportedEncodingException(var10);
  33.                   }
  34.  
  35.                   String var11 = MIME2Java.convert(var10);
  36.                   if (var11 == null) {
  37.                      if (!var1.getAllowJavaEncodingName()) {
  38.                         throw new UnsupportedEncodingException(var10);
  39.                      }
  40.  
  41.                      var11 = var10;
  42.                   }
  43.  
  44.                   try {
  45.                      var3.rewind();
  46.                      if (!"UTF-8".equalsIgnoreCase(var11) && !"UTF8".equalsIgnoreCase(var11)) {
  47.                         var5 = new CharReader(var1, var2.getPublicId(), var2.getSystemId(), new InputStreamReader(var3, var11));
  48.                      } else {
  49.                         var5 = new UTF8CharReader(var1, var2.getPublicId(), var2.getSystemId(), var3);
  50.                      }
  51.                   } catch (UnsupportedEncodingException var13) {
  52.                      throw var13;
  53.                   } catch (Exception var14) {
  54.                      ((Throwable)var14).printStackTrace();
  55.                   }
  56.                } else {
  57.                   var3.rewind();
  58.                   var5 = new UTF8CharReader(var1, var2.getPublicId(), var2.getSystemId(), var3);
  59.                }
  60.             }
  61.          }
  62.       }
  63.  
  64.       return (XMLReader)var5;
  65.    }
  66. }
  67.